Clean up logging: move exception tracebacks to debug level#2867
Merged
Fokko merged 6 commits intoapache:mainfrom Jan 6, 2026
Merged
Clean up logging: move exception tracebacks to debug level#2867Fokko merged 6 commits intoapache:mainfrom
Fokko merged 6 commits intoapache:mainfrom
Conversation
Move exception info from warning to debug level in import error handlers. This provides cleaner user-facing output by default while still making detailed exception info available for troubleshooting via debug logging. Changes: - FileIO import failures (pyiceberg.io.__init__) - LocationProvider import failures (pyiceberg.table.locations) - Catalog import failures (pyiceberg.catalog.__init__) - File deletion failures (pyiceberg.catalog.__init__) Users now see clean one-line warnings instead of full tracebacks. Developers can enable debug logging to see detailed exception info.
nssalian
approved these changes
Dec 28, 2025
geruh
reviewed
Dec 28, 2025
geruh
approved these changes
Dec 28, 2025
Fokko
approved these changes
Jan 6, 2026
Contributor
Fokko
left a comment
There was a problem hiding this comment.
Seems reasonable, thanks @kevinjqliu for working on this, and thanks @nssalian & @geruh for the review 🚀
Fokko
pushed a commit
that referenced
this pull request
Jan 6, 2026
<!--
Thanks for opening a pull request!
-->
<!-- In the case this PR will resolve an issue, please replace
${GITHUB_ISSUE_ID} below with the actual Github issue id. -->
<!-- Closes #${GITHUB_ISSUE_ID} -->
# Rationale for this change
After #2867, I realized that there's no way to set log level for the
CLI.
This PR introduces 2 ways to set log levels, `--log-level` and
`PYICEBERG_LOG_LEVEL`. Default log level is `WARNING`
## Are these changes tested?
Yes
## Are there any user-facing changes?
Yes
<!-- In the case of user-facing changes, please add the changelog label.
-->
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rationale for this change
I noticed we dump the entire error traceback in log warn messages. This causes a wall of text when using the CLI.
This PR conditionally dump traceback only for
debuglog level. This provides cleaner user-facing output by default while still making detailed exception info available for troubleshooting via debug logging.Using the shorthand,
exc_infoin logging.warning's kwargs:https://docs.python.org/3/library/logging.html#:~:text=If%20exc_info%20does%20not%20evaluate%20as%20false%2C%20it%20causes%20exception%20information%20to%20be%20added%20to%20the%20logging%20message.%20If%20an%20exception%20tuple%20(in%20the%20format%20returned%20by%20sys.exc_info())%20or%20an%20exception%20instance%20is%20provided%2C%20it%20is%20used%3B%20otherwise%2C%20sys.exc_info()%20is%20called%20to%20get%20the%20exception%20information.
Are these changes tested?
Are there any user-facing changes?
Before
After